home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
taropyon
/
edia
/
ccisrc
/
cciexp.c
next >
Wrap
Text File
|
1994-08-05
|
3KB
|
122 lines
/*************************************************************************
* 外部CCI の呼び出し
*************************************************************************/
char *_cci_exp_ = "cci.exp";
char cci_cci_option[256] = {0};
char cci_usr_option[256] = {0};
int cci_call( char *_pn )
{
int ret, drv;
char tmp[256], pn[256], fn[256], exfn[256];
char *dlg;
/* カレント変更 */
drv = toupper(pn[0]) - 'A';
FS_chdrv(drv);
FS_getDnamPath(tmp,pn);
FS_chdir(tmp);
/* CPP ------------------------------------------------------------*/
FS_unix2dos(pn, _pn);
FS_getFnam(fn,pn);
FS_appendSnam( exfn, fn, "._ci" );
sprintf( tmp, "cpp -D__CCI__ %s > %s", pn, exfn );
dlg = DLG_msgOpen( DLGPOS_CENTER_OF_SCN, DLGPOS_CENTER_OF_SCN,
80*6, 14*12, C_MBLACK, C_DLGBASE, COLMIX(C_INFO,C_GRAY),
"CPP" );
if ( dlg )
{
DLG_msgSetConfig( dlg, 4, 6, 12 );
DLG_msgClear( dlg, -1 );
DLG_msgConsSet( dlg, C_MBLACK, C_HWHITE); /* コンソール出力設定 */
}
MOS_DEC();
system( tmp );
MOS_INC();
if ( dlg )
{
DLG_msgPrintf(dlg,"\r\n***** COMPLETED *****\r\n");
DLG_msgConsEnd( dlg );
DLG_msgClose(dlg);
}
/* DTA 領域の設定 ------------------------------------------------*/
AplDtaInit();
AplDtaSetStr( "$MainArg", "%s %s %s -- %s", _cci_exp_, cci_cci_option, exfn, cci_usr_option );
ret = AplPclExec( _cci_exp_, 7 );
FS_getFnam(fn,pn);
FS_appendSnam( fn, fn, ".mid" );
#if 0
if ( FS_isFileExist(fn) > 0 )
MID_playStart( fn );
#endif
return (NORMAL);
}
int cci_call_menu( char *pn )
{
int ret;
char tmp[256];
char *dlg;
char *mnu;
char *obj;
char *p;
if ( pn[0] == '\0' )
return (NORMAL);
obj = MNU_alloc(4);
MNU_setObj(obj, 0, MNU_NOR, 'S', "System option", NULL, 1, NULL, NULL);
MNU_setObj(obj, 1, MNU_NOR, 'U', "User Option" , NULL, 2, NULL, NULL);
MNU_setObj(obj, 2, MNU_BLK, 0 , NULL , NULL, 3, NULL, NULL);
MNU_setObj(obj, 3, MNU_NOR, 'C', "Call CCI" , NULL, 4, NULL, NULL);
mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, MNUATT_EXIT,
obj, "CCI" );
for(;;)
{
ret = MNU_start ( mnu );
switch ( ret )
{
case 1: /* system option */
dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
"CCI のオプションパラメータを入力してください。");
DLG_getsSetTitle( dlg, "CCI system option parameter" );
strcpy( tmp, cci_cci_option);
ret = DLG_getsStart( dlg, 255, tmp );
if ( ret >= 0 )
strcpy( cci_cci_option, tmp );
DLG_getsClose(dlg);
break;
case 2: /* option */
dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
"CCI のオプションパラメータを入力してください。");
DLG_getsSetTitle( dlg, "CCI user option parameter" );
strcpy( tmp, cci_usr_option);
ret = DLG_getsStart( dlg, 255, tmp );
if ( ret >= 0 )
strcpy( cci_usr_option, tmp );
DLG_getsClose(dlg);
break;
case 4: /* compile */
cci_call( pn );
goto _RET;
default:
goto _RET;
}
}
_RET:
MNU_close(mnu);
MNU_free(obj);
return (NORMAL);
}